[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
03F8-03FF ---- serial port (8250, 8251, 16450, 16550), same as 02F8 and 0378
03F8 w serial port, transmitter holding register, which contains the
character to be sent. Bit 0 is sent first.
bit 7-0 data bits when DLAB=0 (Divisor Latch Access Bit)
r receiver buffer register, which contains the received character
Bit 0 is received first
bit 7-0 data bits when DLAB=0 (Divisor Latch Access Bit)
r/w divisor latch low byte when DLAB=1
03F9 r/w divisor latch high byte when DLAB=1
r/w interrupt enable register when DLAB=0
bits 7-4 reserved
bit 3 = 1 modem-status interrupt enable
bit 2 = 1 receiver-line-status interrupt enable
bit 1 = 1 transmitter-holding-register empty interrupt enable
bit 0 = 1 received-data-avail.int. enable (and 16550 timeout)
- 16550 will interrupt if data exists in the FIFO and isn't read
within the time it takes to receive four bytes or if no data is
received within the time it takes to receive four bytes
03FA r interrupt identification register. Information about a pending
interrupt is stored here. When the ID register is addressed,
the highest priority interrupt is held, and no other interrupts
are acknowledged until the CPU services that interrupt.
bit 7-6 = 00 reserved on 8250, 8251, 16450
= 11 if FIFO queues are enabled (16550 only)
bit 5-4 = 0 reserved
bit 3 = 0 reserved 8250, 16450
= 1 16550 timeout int. pending
bit 2-1 identify pending interrupt with the highest priority
= 11 receiver line status interrupt. priority=highest
= 10 received data available register interrupt. pr.=second
= 01 transmitter holding register empty interrupt. pr.=third
= 00 modem status interrupt. priority=fourth
bit 0 = 0 interrupt pending. contents of register can be used
as a pointer to the appropriate int.service routine
1 no interrupt pending
- interrupt pending flag uses reverse logic, 0=pending, 1=none
- interrupt will occur if any of the line status bits are set
- THRE bit is set when THRE register is emptied into the TSR
03FA w 16650 FCR (FIFO Control Register)
bit 7-6 = 00 1 byte
= 01 4 bytes
= 10 8 bytes
= 11 14 bytes
bit 5-4 = 00 reserved
bit 3 = 1 change RXRDY TXRDY pins from mode 0 to mode 1
bit 2 = 1 clear XMIT FIFO
bit 1 = 1 clear RCVR FIFO
bit 0 = 1 enable clear XMIT and RCVR FIFO queues
- bit 0 must be set in order to write to other FCR bits
- bit 1 when set the RCVR FIFO is cleared and this bit is reset
the receiver shift register is not cleared
- bit 2 when set the XMIT FIFO is cleared and this bit is reset
the transmit shift register is not cleared
03FB r/w line control register
bit 7 = 1 divisor latch access bit (DLAB)
0 receiver buffer, transmitter holding, or interrupt
enable register access
bit 6 = 1 set break enable. serial ouput is forced to spacing
state and remains there.
bit 5 = stick parity
bit 4 = 1 even parity select
bit 3 = parity enable
1 even number of ones are sent and checked in the
data word bits and parity bit
0 odd number of ones are sent and checked
bit 2 = 0 one stop bit
1 zero stop bit
bit 1-0 00 word length is 5 bits
01 word length is 6 bits
10 word length is 7 bits
11 word length is 8 bits
03FC r/w modem control register
bit 7-5 = 0 reserved
bit 4 = 1 loopback mode for diagnostic testing of serial port
output of transmitter shift register is looped back
to receiver shift register input. In this mode
transmitted data is received immediately so that
the CPU can verify the transmit data/receive data
serial port paths.
bit 3 = 1 auxiliary user-designated output 2
bit 2 = 1 auxiliary user-designated output 1
bit 1 = 1 force request-to-send active
bit 0 = 1 force data-terminal-ready active
03FD r line status register
bit 7 = 0 reserved
bit 6 = 1 transmitter shift and holding registers empty
bit 5 = 1 transmitter holding register empty. Controller is
ready toaccept a new character to send.
bit 4 = 1 break interrupt. the received data input is held in
in the zero bit state longer than the time of start
bit + data bits + parity bit + stop bits.
bit 3 = 1 framing error. the stop bit that follows the last
parity or data bit is a zero bit.
bit 2 = 1 parity error. Character has wrong parity
bit 1 = 1 overrun error. a character was sent to the receiver
buffer before the previous character in the buffer
could be read. This destroys the previous
character.
bit 0 = 1 data ready. a complete incoming character has been
received and sent to the receiver buffer register.
03FE r modem status register
bit 7 = 1 data carrier detect
bit 6 = 1 ring indicator
bit 5 = 1 data set ready
bit 4 = 1 clear to send
bit 3 = 1 delta data carrier detect
bit 2 = 1 trailing edge ring indicator
bit 1 = 1 delta data set ready
bit 0 = 1 delta clear to send
- bits 0-3 are reset when the CPU reads the MSR
- bit 4 is the Modem Control Register RTS during loopback test
- bit 5 is the Modem Control Register DTR during loopback test
- bit 6 is the Modem Control Register OUT1 during loopback test
- bit 7 is the Modem Control Register OUT2 during loopback test
03FF r/w scratch register
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson